<?php
  class FORMATAR
	  {
		private $dia;
		private $d_semana;
		private $mes;
		public $ano;
		private $semana = array ("Domingo","Segunda-Feira","Ter&ccedil;a-Feira","Quarta-Feira","Quinta-Feira","Sexta-Feira","S&aacute;bado");
		private $meses = array (12,"Janeiro","Fevereiro","Mar&ccedil;o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro");
		
		function __construct()
		  {
			$this->dia = date('j');
			$this->d_semana = date('w');
			$this->mes = date('n');
			$this->ano = date('Y');
			}
		function __destructed()
		  {
			}
		
		function data_conv($data,$cod=1)
		  {
		  if(strlen($data)!= 0)
		  	{
			switch ($cod)
			  {
				case 1:
				  {
					$aux = explode("-",$data);
					$data = $aux[2]."/".$aux[1]."/".$aux[0];
					break;
					}
				case 2:
				  {
					$aux = explode("/",$data);
					$data = $aux[2]."-".$aux[1]."-".$aux[0];
					break;
					}
				case 3:
					{
					$aux = explode("/",$data);
					$data = $aux[2].$aux[1].$aux[0];
					break;
					}
				case 4:
					{
					$aux = str_split($data,4);
					$aux2 = str_split($aux[1],2);
					$data = $aux[0]."-".$aux2[0]."-".$aux2[1];
					break;
					}
				case 5:
					{
					$data = str_replace("/", ".", $data);
					break;
					}
				}
			  }
			 else
			 	{
			 	$data = "null";
			 	}
			return $data;
			}
		function Dias($inicio, $fim) 
			{

        $di = explode("-",$inicio);
        $df = explode("-", $fim);

        $dinicio = mktime(date('H'), date('i'), date('s'), $di[1], $di[2], $di[0]);
        $dfim = mktime(date('H'), date('i'), date('s'), $df[1], $df[2], $df[0]);
        $dias = abs((($dinicio - $dfim) / (60*60*24)));

        return $dias;

    }
    function data_extenso($data)
			{
			$aux = explode("-",$data);
			return $aux[2]." de ".$this->meses[(int)$aux[1]]." de ".$aux[0];
			}
			
		function valor_conv($valor,$cod=1)
		  {
			if (!$valor)
			  {
				$valor = 0;
				}
			switch ($cod)
			  {
				case 1:
				  {
					$valor = str_replace(".","",$valor);
					$valor = str_replace(",",".",$valor);
					break;
					}
				case 2:
				  {
					$valor = str_replace(",",".",$valor);
					$valor = number_format($valor, 2, ',', '.');
					break;
					}
				case 3:
					{
					$valor = str_replace(".",",",$valor);
					break;
					}
				}
			return $valor;
			}
		function periodo($mesano)
		  	{
			$aux = explode("/",$mesano);
	  	  $data[0]=$aux[1]."-".$aux[0]."-01";
  	 	switch($aux[0])
		    {
		  	case 1:
	  		case 3:
  			case 5:
			  case 7:
		  	case 8:
	  		case 10:
  			case 12:
			    {
		  		$data[1] = $aux[1]."-".$aux[0]."-31";
	  			break;
  				}
			  case 2:
		  	  {
	  			if (($aux[1]%4)==0)
  				  {
				  	$data[1] = $aux[1]."-".$aux[0]."-29";
			  		}
		  		else
   				  {
					  $data[1] = $aux[1]."-".$aux[0]."-28";
				  	}
			  	break;
		  		}
	  		case 4:
  			case 6:
			  case 9:
	   		case 11:
  			  {
				  $data[1] = $aux[1]."-".$aux[0]."-30";
			  	break;
		  		}
	  		}
  		return ($data);
			}
		function hoje()
		  {
			$string = "Dourados-MS., ";
			$string .= $this->semana[$this->d_semana].", ";
			$string .= $this->dia." de ".$this->meses[$this->mes]." de ".$this->ano.".";
			return ($string);
			}
		function data_hoje()
		  {
			return ($this->ano."-".$this->mes."-".$this->dia);
			}
		function converter_texto($texto,$cod=1)
		  {
			switch($cod)
			  {
				case 1:
				  {
					$texto = iconv("ISO-8859-1","UTF-8",$texto);
					break;
					}
				case 2:
				  {
					$texto = iconv("UTF-8","ISO-8859-1",$texto);
					break;
					}
				}
			$texto_f = "";
			for ($i=0; $i < strlen($texto); $i++)
				{
				if ($texto[$i] == '\'')
					{
					$texto_f .= "''";
					}
				else 
					{
					$texto_f .= $texto[$i];
					}
				}
			return $texto_f;
			}
		function texto_maiusculo($texto)
			{
			$array_minuscula = array("á" => "Á" ,"à" => "À","ã" => "Ã", "â" => "Â", "é" => "É", "ê" => "Ê", "ô" => "Ô", "ó" => "Ó", "õ" => "Õ", "í" => "Í", "ú" => "Ú", "ü" => "Ü", "ç" => "Ç");
			$aux = strtoupper($texto);
			return (strtr($aux,$array_minuscula));
			}	
	function placa($placa,$cod=0)
	  {
		switch($cod)
		  {
			case 0:
			  {
				$placa = str_replace("-","",$placa);
				break;
				}
			case 1:
			  {
				$aux = str_split($placa,3);
				$placa = $aux[0]."-".$aux[1].$aux[2];
				break;
				}
			}
		return ($placa);
		}
	function cep($cep,$cod=0)
		{
		$mascara = array(".","-");
		switch($cod)
			{
			case 0:
				{
				$cep = str_replace($mascara,"",$cep);
				break;
				}
			}
		return ($cep);
		}
	public function cpf($cpf,$cod=0)
		{
		$mascara = array(".","-");
		switch($cod)
			{
			case 0:
				{
				$cpf = str_replace($mascara,"",$cpf);
				break;
				}
			case 1:
				{
				$aux = str_split($cpf,3);
				$cpf = $aux[0].".".$aux[1].".".$aux[2]."-".$aux[3];
				break;
				}
			}
		return ($cpf);
		}
	function telefone($tel,$cod=0)
		{
		$mascara = array("(",")","-"," ");
		switch($cod)
			{
			case 0:
				{
				$tel = str_replace($mascara,"",$tel);
				break;
				}
			}
		return ($tel);
		}
	function cnpj($cnpj,$cod=0)
		{
		$mascara = array(".","/","-");
		switch($cod)
			{
			case 0:
				{
				$cnpj = str_replace($mascara,"",$cnpj);
				break;
				}
			}
		return ($cnpj);
		}
	function cpf_cnpj($valor,$tipo,$modo=0)
      	{
      	switch ($tipo)
      		{
      		case "CPF":
      			{
      			if ($modo == 0)
      				{
      				$aux = str_split($valor);
      				$retorno = $aux[0].$aux[1].$aux[2].".".$aux[3].$aux[4].$aux[5].".".$aux[6].$aux[7].$aux[8]."-".$aux[9].$aux[10];
      				}
      			break;
      			}
      		case "CNPJ":
      			{
      			if ($modo == 0)
      				{
      				$aux = str_split($valor);
      				$retorno = $aux[0].$aux[1].".".$aux[2].$aux[3].$aux[4].".".$aux[5].$aux[6].$aux[7]."/".$aux[8].$aux[9].$aux[10].$aux[11]."-".$aux[12].$aux[13];
      				}
      			break;
      			}
      		}
      	return $retorno;
      	}
     function extenso($valor=0,$tipo=0,$caixa=0) 
			{
			$rt = "";
    		$valor = strval($valor);
    		$valor = str_replace(",",".",$valor);

    		if($tipo==1)
    			{
    			$singular = array("centavo", "real", "mil", "milhão", "bilhão", "trilhão", "quatrilhão");
    			$plural = array("centavos", "reais", "mil", "milhões", "bilhões", "trilhões","quatrilhões");
    			}
    		else
    			{
    			$pos   = strpos($valor,".");
    			$valor = substr($valor,0,$pos);
    			$singular = array("", "", "mil", "milhão", "bilhão", "trilhão","quatrilhão");
    			$plural = array("", "", "mil", "milhões", "bilhões", "trilhões","quatrilhões");
    			}
    		
			$c = array("", "cem", "duzentos", "trezentos", "quatrocentos","quinhentos", "seiscentos", "setecentos", "oitocentos", "novecentos");
			$d = array("", "dez", "vinte", "trinta", "quarenta", "cinquenta","sessenta", "setenta", "oitenta", "noventa");
			$d10 = array("dez", "onze", "doze", "treze", "quatorze", "quinze","dezesseis", "dezesete", "dezoito", "dezenove");
			$u = array("", "um", "dois", "três", "quatro", "cinco", "seis","sete", "oito", "nove");
			$z=0;
			$valor = number_format($valor, 2, ".", ".");
			$inteiro = explode(".", $valor);
			for($i=0;$i<count($inteiro);$i++)
				{
        		for($ii=strlen($inteiro[$i]);$ii<3;$ii++)
        			{
            	$inteiro[$i] = "0".$inteiro[$i];
            	}
            }
			$fim = count($inteiro) - ($inteiro[count($inteiro)-1] > 0 ? 1 : 2);
			for ($i=0;$i<count($inteiro);$i++) 
				{
        		$valor = $inteiro[$i];
        		$rc = (($valor > 100) && ($valor < 200)) ? "cento" : $c[$valor[0]];
        		$rd = ($valor[1] < 2) ? "" : $d[$valor[1]];
        		$ru = ($valor > 0) ? (($valor[1] == 1) ? $d10[$valor[2]] : $u[$valor[2]]) : "";

        		$r = $rc.(($rc && ($rd || $ru)) ? " e " : "").$rd.(($rd && $ru) ? " e " : "").$ru;
        		$t = count($inteiro)-1-$i;
        		$r .= $r ? " ".($valor > 1 ? $plural[$t] : $singular[$t]) : "";
        		if ($valor == "000")
        			{
        			$z++;
        			} 
        		elseif ($z > 0)  
        			{
        			$z--;
        			}
        		if (($t==1) && ($z>0) && ($inteiro[0] > 0)) 
        			{
        			$r .= (($z>1) ? " de " : "").$plural[$t];
        			}
        		if ($r) 
        			{
        			$rt = $rt . ((($i > 0) && ($i <= $fim) && ($inteiro[0] > 0) && ($z < 1)) ? ( ($i < $fim) ? " e " : " e ") : " ") . $r;
        			}
    			}
    			
    		if($caixa)
    			{
    			$rt = strtoupper($rt);
    			$maiusculas = array("Á","À","Â","Ã","É","Ê","Í","Ó","Ô","Õ","Ú","Û");
    			$minusculas = array("á","à","â","ã","é","ê","í","ó","ô","õ","ú","û");
    
    
    			for($i=0;$i<count($maiusculas);$i++)
    				{
    				$rt = ereg_replace($minusculas[$i],$maiusculas[$i],$rt);
    				}
    			}
    		return $rt;                      
        	}			
		};
?>